b81822043e2220fedb396c80066c27ef5f12bea5,plugins/org.eclipse.xtext.ui.common/src/org/eclipse/xtext/ui/common/editor/hyperlinking/DefaultHyperlinkDetector.java,DefaultHyperlinkDetector,detectHyperlinks,#ITextViewer#IRegion#boolean#,80

Before Change


	 * @see org.eclipse.jface.text.hyperlink.IHyperlinkDetector#detectHyperlinks(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion, boolean)
	 */
	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, final IRegion region, boolean canShowMultipleHyperlinks) {
		return ((IXtextDocument)textViewer.getDocument()).readOnly(new UnitOfWork<IHyperlink[]>() {
			public IHyperlink[] exec(XtextResource resource) throws Exception {
				IParseResult parseResult = resource.getParseResult();
				Assert.isNotNull(parseResult);
				AbstractNode abstractNode = ParseTreeUtil.getCurrentOrFollowingNodeByOffset(parseResult.getRootNode(),
						region.getOffset());
				final Region location = new Region(abstractNode.getOffset(), abstractNode.getLength());
				List<EObject> crossLinkedEObjects = findCrossLinkedEObject(abstractNode);
				if (crossLinkedEObjects.isEmpty())
					return null;
				List<IHyperlink> links = new ArrayList<IHyperlink>();
				for (EObject crossReffed : crossLinkedEObjects) {
					final String label = labelProvider.getText(crossReffed);
					final URI uri = EcoreUtil.getURI(crossReffed);
					final URI normalized = crossReffed.eResource().getResourceSet().getURIConverter().normalize(uri);
					links.add(new IHyperlink() {

							public IRegion getHyperlinkRegion() {
								return location;
							}
							public String getHyperlinkText() {
								return label;
							}
							public String getTypeLabel() {
								return null;
							}
							public void open() {
								new OpenDeclarationAction(normalized, locationProvider).run();
							}

						});
				}
				return links.toArray(new IHyperlink[links.size()]);
			}
		});
	}

	public Object execute(ExecutionEvent event) throws ExecutionException {

After Change


	 * @see org.eclipse.jface.text.hyperlink.IHyperlinkDetector#detectHyperlinks(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion, boolean)
	 */
	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, final IRegion region, final boolean canShowMultipleHyperlinks) {
		return ((IXtextDocument)textViewer.getDocument()).readOnly(new UnitOfWork<IHyperlink[]>() {
			public IHyperlink[] exec(XtextResource resource) throws Exception {
				return helper.createHyperlinksByOffset(resource, region.getOffset(), canShowMultipleHyperlinks);
			}
		});
	}

	public Object execute(ExecutionEvent event) throws ExecutionException {